package com.th.common.mybatis.type;

import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler;
import com.fasterxml.jackson.core.type.TypeReference;
import com.th.common.utils.JsonUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Set;

/**
 *
 * 客户端资源数据转换器
 * @author tuhang
 */
public class JsonResourceUrlSetTypeHandle extends AbstractJsonTypeHandler<Object> {
    private static final TypeReference<Set<ResourceUrl>> typeReference = new TypeReference<Set<ResourceUrl>>(){};

    @Override
    protected Object parse(String json) {
        return JsonUtils.parseObject(json, typeReference);
    }

    @Override
    protected String toJson(Object obj) {
        return JsonUtils.toJsonString(obj);
    }


    /**
     * 资源对象中的资源地址对象
     * {name:'',url:'',urlPassWord:'',filePassWord:''}
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class ResourceUrl implements Serializable {
        /**
         * 资源地址平台 百度网盘 阿里网盘
         */
        private String name;

        /**
         * 资源地址
         */
        private String url;

        /**
         * 资源密码
         */
        private String urlPassWord;

        /**
         * 文件解压密码
         */
        private String filePassWord;

    }
}
